package com.wocharging.base.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
* <p>
* 订单信息表
* </p>
* @author yuzhou
* @since 2024-06-179 15:00:10
*/
@Data
@Accessors(chain = true)
@TableName("wo_order")
@ApiModel(value = "WoOrder对象", description = "订单信息表")
public class WoOrder implements Serializable {

    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("充电用户Id")
    @TableField("user_id")
    private Long userId;

    @ApiModelProperty("系统订单编号")
    @TableField("order_no")
    private String orderNo;

    @ApiModelProperty("订单类型1:充电订单 2:放电订单")
    @TableField("order_type")
    private Integer orderType;

    @ApiModelProperty("所属运营公司")
    @TableField("operation_id")
    private String operationId;

    @ApiModelProperty("订单状态: 0: 启动充电(启动中) 1: 充电进行中(正在充电) 2:充电完成(结束) 3:充电异常 4:停止充电中(结束中)")
    @TableField("status")
    private Integer status;

    @ApiModelProperty("订单总金额")
    @TableField("order_amount")
    private BigDecimal orderAmount;

    @ApiModelProperty("结算方式1: 离线账户 2: 现金账户")
    @TableField("pay_type")
    private String payType;

    @ApiModelProperty("第三方系统订单流水编号")
    @TableField("third_order_no")
    private String thirdOrderNo;

    @ApiModelProperty("第三方启动订单号")
    @TableField("third_start_order_no")
    private String thirdStartOrderNo;

    @ApiModelProperty("第三方配置表id")
    @TableField("hlht_id")
    private Integer hlhtId;

    @ApiModelProperty("订单来源1：自营 2: 第三方平台(恒大)")
    @TableField("order_source")
    private Integer orderSource;

    @ApiModelProperty("启动方式 0: 本地刷卡启动(离线)(不结算账户余额) 1: 后台启动(小程序) 2: 本地管理员启动  3: VIN码启动  4: 在线刷卡启动(在线卡)(结算账户余额)")
    @TableField("start_type")
    private String startType;

    @ApiModelProperty("充电开始时间")
    @TableField("start_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty("充电结束时间")
    @TableField("end_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty("充电时长")
    @TableField("charging_time")
    private Integer chargingTime;

    @ApiModelProperty("计费方式 0:充满为止 1:时间控制充电 2:金额控制充电 3:电量控制充电 10: 未知")
    @TableField("charging_type")
    private String chargingType;

    @ApiModelProperty("本次充电累计充电费用")
    @TableField("total_amount")
    private BigDecimal totalAmount;

    @ApiModelProperty("本次充电累计充电服务费")
    @TableField("service_amount")
    private BigDecimal serviceAmount;

    @ApiModelProperty("充电柜编号")
    @TableField("box_no")
    private String boxNo;

    @ApiModelProperty("充电桩编号")
    @TableField("pile_no")
    private String pileNo;

    @ApiModelProperty("充电枪编号")
    @TableField("gun_no")
    private String gunNo;

    @ApiModelProperty("充电结束原因")
    @TableField("charge_type")
    private String chargeType;

    @ApiModelProperty("订单充电方式1:卡充电 2:扫码充电 3：VIN充电")
    @TableField("order_charge_type")
    private String orderChargeType;

    @ApiModelProperty("本次充电累计充电电量(度)")
    @TableField("electric_value")
    private BigDecimal electricValue;

    @ApiModelProperty("电费(基础电价)")
    @TableField("electric_amount")
    private BigDecimal electricAmount;

    @ApiModelProperty("附件信息")
    @TableField("append_info")
    private String appendInfo;

    @ApiModelProperty("充电卡号")
    @TableField("card_no")
    private String cardNo;

    @ApiModelProperty("交易前卡余额")
    @TableField("before_card_amount")
    private BigDecimal beforeCardAmount;

    @ApiModelProperty("开始电量")
    @TableField("start_soc")
    private String startSoc;

    @ApiModelProperty("结束电量")
    @TableField("end_soc")
    private String endSoc;

    @ApiModelProperty("当前soc")
    @TableField("curr_soc")
    private String currSoc;

    @ApiModelProperty("剩余充电时长")
    @TableField("surplus_charging_time")
    private Integer surplusChargingTime;

    @ApiModelProperty("订单备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty("车架号")
    @TableField("vin_no")
    private String vinNo;

    @ApiModelProperty("车牌号")
    @TableField("vehicle_no")
    private String vehicleNo;

    @ApiModelProperty("充电电压")
    @TableField("charging_voltage")
    private String chargingVoltage;

    @ApiModelProperty("充电电流")
    @TableField("charging_ampere")
    private String chargingAmpere;

    @ApiModelProperty("电量损耗")
    @TableField("electric_loss")
    private BigDecimal electricLoss;

    @ApiModelProperty("1:正常 0:作废(删除)")
    @TableField("flag")
    private Integer flag;

    @ApiModelProperty("车辆Id")
    @TableField("vehicle_id")
    private String vehicleId;

    @ApiModelProperty("司机Id")
    @TableField("user_vehicle_id")
    private String userVehicleId;

    @ApiModelProperty("系统发起充电的时间")
    @TableField("sys_start_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date sysStartTime;

    @ApiModelProperty("系统发起的结束充电时间")
    @TableField("sys_end_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date sysEndTime;

    @ApiModelProperty("创建人")
    @TableField("create_by")
    private String createBy;

    @ApiModelProperty("下单时间")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty("更新人")
    @TableField("update_by")
    private String updateBy;

    @ApiModelProperty("更新时间")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date updateTime;

}
